﻿using System;
using System.Collections.Generic;
using ReAnimation.Domain;
using ReAnimation.Helpers.WinForms;

namespace ReAnimation.MVP.ModelInterfaces
{
    public interface IMainModel
    {
        Molecule CurrentMolecule { get;  set; }
        IList<Molecule> Molecules { get; }

        event EventHandler CurrentMoleculeChanged;
        event EventHandler CurrentMoleculeStructureChanged;
        event EventHandler<EventArg<Molecule>> MoleculeAdded;
        event EventHandler<EventArg<Molecule>> MoleculeRemoved;
        event EventHandler MoleculesCollectionChanged;

        void CurrentMoleculeStructureWasModified();
        void AddMolecule(Molecule molecule);
        void RemoveMolecule(Molecule molecule);
    }
}